The present invention relates to video coding and, more particularly, to the use of video objects in combination with keyregions to improve coding efficiency and image quality.
The advent of video objects and video object planes (VOPs) in video coding permits significant coding savings by selectively apportioning bits among portions of the frame that require a relatively large amount of bits and other portions that require a relatively small number of bits. VOPs also permit additional functionality such as object manipulation.
As an example, FIG. 1(a) illustrates a frame for coding that includes a head and shoulders of a narrator, a logo suspended within the frame and a background. The logo may be static, having no motion and no animation. In such a case, bit savings may be realized by coding the logo only once. For display, the coded logo could be decoded and displayed continuously from the single coded representation. Similarly, it may be desirable to code the background at a low refresh rate to save bits and yet create an illusion of movement in the reconstructed image. Bit savings realized by coding the logo and background at lower rates may permit coding of the narrator at a higher rate, where the perceptual significance of the image may reside. VOPs are suited to such applications. FIGS. 1(b)-1(d) illustrate the frame of FIG. 1(a) broken into three VOPs. By convention, a background generally is assigned VOPØ. The narrator and logo may be assigned VOP1 and VOP2 respectively. Within each VOP, all image data is coded and decoded identically.
Not all data within a VOP merits identical treatment. For example, certain regions of a VOP may require animation, whereas others are relatively static. Consider the example of the narrator. The perceptually significant areas of VOP1 center around the facial features of the figure. The narrator""s dress and hair may not require animation to the same extent that the facial features do. Accordingly, there is a need in the art for a coding system that emphasizes certain areas of a VOP over others.
Further, regions of a VOP may possess similar characteristics. For example, some image data within the VOP may exhibit the same motion vector or may be quantized according to the same quantization parameters. Certain regions of a VOP may require a greater resilience against channel errors. Coding efficiencies may be obtained by coding the similar attributes only once for the region. Such efficiencies are lost unless coding systems provide a means for coding common attributes of the region differently from other regions in a VOP that do not share the common attributes.
Finally, it may be preferable to embed functionalities in certain regions of a VOP. For example, images may be superimposed upon regions of a VOP. Consider an example where it is desirable to impose a logo image onto the dress of the narrator in VOPI and permit a viewer to selectively enable or disable display of the logo. Accordingly, there is a need in the art to associate functionalities with certain regions of a VOP.
The present invention alleviates the aforementioned needs in the art to a great extent by providing keyregions for VOPs. Keyregions exhibit one or more of the following properties:
they are optional,
they consist of a sequence of macroblocks,
they are two-dimensional but do not have to be rectangular,
a VOP may be portioned into keyregions, but not every macroblock of a VOP must belong to a keyregion,
a macroblock that is not a member of a keyregion may be a member of a background keyregion,
keyregions begin and end in the same VOP,
a macroblock that belongs to a keyregion belongs to only one keyregion, and
macroblocks of a keyregion share at least one common attribute.
The keyregion is defined in the coded video information by a keyregion header that identifies the location and width of the keyregion. Data of the macroblocks in the keyregion is decoded by a decoder and placed sequentially within the keyregion until the decoder receives another keyregion header.